﻿using Caliburn.Micro;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Phones.Client.Model
{
    public abstract class BaseTransferObject<E, TO> : 
        PropertyChangedBase, IEquatable<TO>, ITransferable<E>
        where TO : IBaseTrasferObject
    {
        public int ID { get; set; }

        public bool Equals(TO other)
        {
            return this.ID == other.ID;            
        }

        public abstract void TransferFrom(E entity);

        public abstract void TransferTo(E entity);
    }
}
